package ee.ttu.model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonIgnore;

/**
 * Created by Siim Somma on 26.03.2015.
 */
@Entity
@Table(name = "PAKKUMINE", schema = "public")
public class Pakkumine implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "pakkumine_seq")
	@SequenceGenerator(name = "pakkumine_seq", sequenceName = "s_pakkumine", schema = "public")
	@Column(name = "ID")
	private Long id;

	@Column(name = "KIRJELDUS")
	private String kirjeldus;

    @ManyToOne
    @JoinColumn(name = "SEOTUD_ETTEPANEK", referencedColumnName = "ID")
    private Ettepanek seotudEttepanek;

	@ManyToOne
	@JoinColumn(name = "PAKKUMISE_STAATUS", referencedColumnName = "ID")
	private Klassifikaator pakkumiseStaatus;

	@JsonIgnore
	@OneToMany(mappedBy = "seotudPakkumine")
	private List<PakkumiseSyndmus> seotudSyndmusedList;

	@JsonIgnore
	@OneToMany(mappedBy = "seotudPakkumine")
	private List<KasutajaPakkumises> pakkumisesOsalejad;

	@JsonIgnore
	@OneToMany(mappedBy = "seotudPakkumine")
	private List<Fail> seotudFailid;

	@JsonIgnore
	@OneToMany(mappedBy = "seotudPakkumine")
	private List<Suhtlus> seotudSuhtlused;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getKirjeldus() {
        return kirjeldus;
    }

    public void setKirjeldus(String kirjeldus) {
        this.kirjeldus = kirjeldus;
    }

    public Ettepanek getSeotudEttepanek() {
        return seotudEttepanek;
    }

    public void setSeotudEttepanek(Ettepanek seotudEttepanek) {
        this.seotudEttepanek = seotudEttepanek;
    }

    public Klassifikaator getPakkumiseStaatus() {
        return pakkumiseStaatus;
    }

    public void setPakkumiseStaatus(Klassifikaator pakkumiseStaatus) {
        this.pakkumiseStaatus = pakkumiseStaatus;
    }

    public List<PakkumiseSyndmus> getSeotudSyndmusedList() {
        return seotudSyndmusedList;
    }

    public void setSeotudSyndmusedList(List<PakkumiseSyndmus> seotudSyndmusedList) {
        this.seotudSyndmusedList = seotudSyndmusedList;
    }

    public List<KasutajaPakkumises> getPakkumisesOsalejad() {
        return pakkumisesOsalejad;
    }

    public void setPakkumisesOsalejad(List<KasutajaPakkumises> pakkumisesOsalejad) {
        this.pakkumisesOsalejad = pakkumisesOsalejad;
    }

    public List<Fail> getSeotudFailid() {
        return seotudFailid;
    }

    public void setSeotudFailid(List<Fail> seotudFailid) {
        this.seotudFailid = seotudFailid;
    }

    public List<Suhtlus> getSeotudSuhtlused() {
        return seotudSuhtlused;
    }

    public void setSeotudSuhtlused(List<Suhtlus> seotudSuhtlused) {
        this.seotudSuhtlused = seotudSuhtlused;
    }
}
